package com.comcollectionday04test;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class CollectionDay04Test {
    public static void main(String[] args) {
        List<Point> list = new ArrayList<>();
        list.add(new Point(1, 2));
        list.add(new Point(3, 4));
        list.add(new Point(5, 6));

         //因为list系列的集合是有索引下标的 所以可以用get方法检索遍历
        for (int i = 0; i < list.size(); i++) {
            list.get(i);
        }

        //指定索引替换元素 返回被替换的元素
        Point po1 = new Point(7,8);
        Point set = list.set(1, po1);

        //删除元素  返回是否删除成功 对象优先调用和形参类型相同的方法
        list.remove(po1);//删除指定元素
        list.remove(1);//删除下标指定元素

        //添加元素
        Point po2 = new Point(3,4);
        list.add(1,po2);//指定索引添加元素 原索引元素往后移动
        list.add(po1);//直接在集合后面添加元素


        //截取原集合的部分 创建一个新集合接收  原集合长度改变新集合会报错
        //截取部分的数据改变会相互影响
        List<Point> newList = list.subList(1, 2);

        //集合排序 lambda表达式
        list.sort((po3,po4)->po3.getX()- po4.getX());

        List<String> stringList = new ArrayList<>();
        stringList.add("惠惠");
        stringList.add("小春");
        stringList.add("爱丽丝");

        stringList.sort((s1,s2)->s1.length()-s2.length());



        List<Integer> integerList = new ArrayList<>();
        integerList.add(1);
        integerList.add(1);
        integerList.add(3);
        integerList.add(4);

        integerList.sort((i1,i2)->i1-i2);

        //利用set系列集合不会出现重复元素 去掉list集合的重复元素

        Set<Integer> integerSet = new HashSet<>();
        integerSet.addAll(integerList);
        integerSet.forEach(integer -> System.out.println(integer));


    }
}
